package com.totem.order.api;

import com.totem.base.model.PageVO;
import com.totem.base.model.Result;
import com.totem.order.vo.*;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.validation.Valid;

@Tag(name="ITOrderQueryServiceApi", description="订单查询服务")
public interface ITOrderQueryServiceApi {
    @Operation(summary="商品订单分页查询")
    @PostMapping("/order/goods/page")
    @ResponseBody
    Result<PageVO<GoodsOrderVO>> goodsOrderPage(@RequestBody @Valid GoodsOrderPageVO goodsOrderPageVO);

    @Operation(summary="充值订单分页查询")
    @PostMapping("/order/recharge/page")
    @ResponseBody
    Result<PageVO<RechargeOrderVO>> rechargeOrderPage(@RequestBody @Valid RechargeOrderPageVO rechargeOrderPageVO);

    @Operation(summary="基金订单分页查询")
    @PostMapping("/order/fund/page")
    @ResponseBody
    Result<PageVO<FundOrderVO>> fundOrderPage(@RequestBody @Valid FundOrderPageVO fundOrderPageVO);

    @Operation(summary="认购订单分页查询")
    @PostMapping("/order/subscribe/page")
    @ResponseBody
    Result<PageVO<SubscribeOrderVO>> subscribeOrderPage(@RequestBody @Valid SubscribeOrderPageVO subscribeOrderPageVO);

    @Operation(summary="提现订单分页查询")
    @PostMapping("/order/withdraw/page")
    @ResponseBody
    Result<PageVO<WithdrawOrderVO>> withdrawOrderPage(@RequestBody @Valid WithdrawOrderPageVO withdrawOrderPageVO);

    @Operation(summary="转化记录分页查询")
    @PostMapping("/order/conversion/page")
    @ResponseBody
    Result<PageVO<ConversionOrderVO>> conversionPage(@RequestBody @Valid ConversionPageVO vo);
}
